<script setup>
import { onLaunch, onShow, onError } from "@dcloudio/uni-app";
import sheep from "./sheep";
// #ifdef APP-PLUS
import APPUpdate, {
  getCurrentNo,
} from "./uni_modules/zhouWei-APPUpdate/js_sdk/appUpdate";
// #endif

// 强制更新标志
let forceUpdateTimer = null;

onLaunch(() => {
  // #ifdef APP-PLUS
  // 强制更新流程
  startForceUpdate();
  // #endif
});

// #ifdef APP-PLUS
// 强制更新函数
function startForceUpdate() {
  APPUpdate(false, (updateInfo) => {
    // 如果有更新且是强制更新，设置定时器持续弹窗
    if (updateInfo && updateInfo.updateType === "forcibly") {
      // 清除之前的定时器
      if (forceUpdateTimer) {
        clearInterval(forceUpdateTimer);
      }

      // 设置定时器，每5秒检查一次是否需要强制更新
      forceUpdateTimer = setInterval(() => {
        console.log("检查强制更新状态...");
        APPUpdate(false); // 继续检查更新
      }, 1000); // 5秒间隔
    }
  });
}

// 监听应用从后台切换到前台
uni.onAppShow(() => {
  // 应用切换到前台时也检查更新
  if (forceUpdateTimer) {
    startForceUpdate();
  }
});
// #endif

onError((err) => {
  console.log("AppOnError:", err);
});
onShow(() => {
  // #ifdef MP-WEIXIN
  const updateManager = wx.getUpdateManager();

  updateManager.onCheckForUpdate(function (res) {
    // 请求完新版本信息的回调
    console.log("jinruweix");
    console.log(res.hasUpdate);
  });

  updateManager.onUpdateReady(function (res) {
    wx.showModal({
      title: "更新提示",
      content: "新版本已经准备好，是否重启应用？",
      success(res) {
        if (res.confirm) {
          // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
          updateManager.applyUpdate();
        }
      },
    });
  });

  updateManager.onUpdateFailed(function (res) {
    // 新的版本下载失败
    wx.showModal({
      title: "已有新版本",
      content: "请您删除小程序，重新搜索进入",
    });
    updateManager.applyUpdate();
  });

  // #endif

  // #ifdef APP-PLUS
  // 获取urlSchemes参数
  const args = plus.runtime.arguments;
  if (args) {
  }

  // 获取剪贴板
  uni.getClipboardData({
    success: (res) => {},
  });
  // #endif
});
</script>

<style lang="scss">
/*每个页面公共css */
@import "uview-ui/index.scss";
@import "@/sheep/scss/index.scss";

.emity {
  ::v-deep image {
    margin: 60rpx auto;
  }

  text-align: center;
  padding-bottom: 30rpx;
}
</style>
